1. Field of the Invention
The present invention relates to a bus expansion device control and, more particularly, to a method and apparatus for detecting the presence of a bus expansion device and selectively enabling or disabling the device.
2. Description of the Related Art
Legacy and Plug and Play (PNP) are two types of bus expansion devices or adapter cards that are used to provide additional functionalities to computers. Additional functionalities may comprise modem functionality, graphics capability, small computer system interface (SCSI) capability, networking capability, etc. To provide communication between the additional cards and the computer system, an expansion bus is typically used. One expansion bus that is most often used is the Industry Standard Architecture (ISA) bus. The ISA bus is the expansion bus defined by the IBM Personal Computer/AT (PC/AT). Since the introduction of the PC/AT, the ISA bus has had widespread application in personal computers.
Legacy ISA adapter cards were the first adapter cards to be available in the industry. These adapter cards can only be configured manually. Manual configuration entails the setting of switches and the use of hardware jumpers to allocate resources to the adapter. These resources may include input/output (I/O) ports, direct memory access (DMA) channels, interrupt request (IRQ) levels, and memory address regions.
PNP ISA adapters, on the other hand, are configurable under software control. That is, software within the computer system can be used to allocate the resources to the adapter. Unfortunately, PNP adapters are relatively new in the industry and therefore few of them exist. Since there is a large investment in legacy adapters, the legacy adapters are carried forward to computer systems supporting PNP adapters. Thus, legacy and PNP ISA adapters often coexist in a single computer system. Consequently, the ability to detect and identify adapters on a per slot basis needs to be provided.
When a computer system is configured, the resource assignments are made in such a way as to avoid conflicts. That is, a resource such as IRQ 5 cannot be allocated to more than one adapter. If conflicting resource allocations are made, the system may become inoperable. In addition, a malfunctioning or defective adapter card can also cause the system to become inoperable.
Thus, there is a need in the art for a method and apparatus that detect and identify adapters on a per slot basis as well as isolate malfunctioning or misconfigured adapters to allow for continuous system operability.